This application generally relates to computer systems, and more specifically to an architecture for an on-line query tool which executes in a computer system.
Software tools which execute in a computer system are used to perform various operations, such as performing queries or searches upon databases. These software tools may be accessible through a network to a number of users. For example, an on-line query tool may be available through a network, such as the Internet, in which users remotely access the tool from various remote sites. One operation which may be performed by software tools executing in a computer system is to perform searches or queries upon an existing database. Generally, the tools which perform data queries require an efficient technique to provide a resultant data query set within a short response time.
Depending on the type of data to be queried and the size of the data domain being searched, the query tools should generally be able to incorporate data changes and modifications easily and readily. If there are a large number of modifications to a large amount of data, a technique for maintaining the data may be required to perform data maintenance in accordance with this number of modifications. Additionally, the data updates may include a variety of data types and information. For example, data updates may include modifications to multi-media data types, including audio and video files as well as machine-executable programs and text information. This text information, as well as the multi-media information, may be displayed in a variety of combinations in a variety of arrangements which may also change. The data arrangements and display formats, as well as the data content, which are presented to a user in response to a query or request may also change.
Thus, there is required an efficient and flexible technique and architecture for providing search query results in an efficient manner by reducing the amount of time required to respond to a user query. Additionally, a system and method must be flexible enough to be able to integrate a large number of updates for a wide variety of data which may be used in many different computer systems.
In accordance with principles of the invention is an apparatus for performing a data query. The apparatus includes a computer system having one or more server nodes and a database including the data used for performing the data query. A hardware router forwards a request including the data query to one of the server nodes. A backoffice component provides data included in the database. Each of the server nodes includes: a request router for determining if a request including a data query should be performed by each server node, or if the request should be routed elsewhere for processing; partitioning data used by the request router to determine where the request should be processed, the partitioning data associating each of the server nodes with a particular portion of a query domain upon which each server node primarily performs data queries; and a query cache including data associated with the particular portion of a query domain upon which each server node primarily performs data queries.
Thus, there is provided an efficient and flexible technique and architecture for providing search query results in an efficient manner by reducing the amount of time required to respond to a user query. Additionally, the apparatus is flexible enough to be able to integrate a large number of updates for a wide variety of data which may be used in many different computer systems.